#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv
import os

def csv_to_markdown(csv_file_path, md_file_path):
    """
    读取CSV文件，提取问题和正确SQL，然后使用---分隔符写入Markdown文件
    
    Args:
        csv_file_path: CSV文件路径
        md_file_path: 输出的Markdown文件路径
    """
    # 确保输入文件存在
    if not os.path.exists(csv_file_path):
        print(f"错误: 找不到文件 {csv_file_path}")
        return False
    
    try:
        with open(csv_file_path, 'r', encoding='utf-8') as csv_file, \
             open(md_file_path, 'w', encoding='utf-8') as md_file:
            
            # 写入Markdown文件标题
            md_file.write("# SQL问题与答案对\n\n")
            
            # 读取CSV文件
            csv_reader = csv.reader(csv_file)
            
            # 跳过标题行
            header = next(csv_reader)
            
            # 处理每一行数据
            for i, row in enumerate(csv_reader, 1):
                if len(row) >= 2:
                    # 提取问题和SQL
                    question = row[0].strip()
                    sql = row[1].strip()
                    
                    # 如果问题以"问题："开头，则去掉这个前缀
                    if question.startswith("问题："):
                        question = question[3:].strip()
                    
                    # 如果SQL以"正确sql："开头，则去掉这个前缀
                    if sql.startswith("正确sql："):
                        sql = sql[5:].strip()
                    # 去掉可能存在的前导冒号
                    if sql.startswith("："):
                        sql = sql[1:].strip()
                    
                    # 写入Markdown格式
                    md_file.write(f"## 问题 {i}\n\n")
                    md_file.write(f"{question}\n\n")
                    md_file.write("正确sql如下：\n\n")
                    md_file.write("```sql\n")
                    md_file.write(f"{sql}\n")
                    md_file.write("```\n\n")
                    
                    # 添加分隔符，除了最后一行
                    md_file.write("---\n\n")
            
            print(f"成功将CSV数据转换为Markdown格式并保存到 {md_file_path}")
            return True
    
    except Exception as e:
        print(f"处理过程中发生错误: {str(e)}")
        return False

if __name__ == "__main__":
    # 文件路径
    csv_file_path = "/Users/nobug/Downloads/公司资料/ai_数据分析/dify_test/sql问题对.csv"
    md_file_path = "/Users/nobug/Downloads/公司资料/ai_数据分析/dify_test/sql问题对.md"
    
    # 执行转换
    csv_to_markdown(csv_file_path, md_file_path)
